Method and apparatus of error handling for video coding using intra block copy mode

ABSTRACT

In order to overcome the issue caused by a decoded block vector (BV) pointing to a reference block overlapping with an unavailable area, various methods are disclosed. According to one method, if the reference block overlaps with an unavailable area, the reference pixels in the unavailable area are generated for IntraBC prediction of the current block by padding from neighbouring available pixels. The padding can be done in the horizontal direction and then the vertical direction. The padding may also done in the vertical direction first and then horizontal direction. In another method, if the reference block overlaps with an unavailable area, the reference pixels in the unavailable area are generated for IntraBC prediction of the current block by using previous decoded pixels in the unavailable area. A pre-defined value may also be used for the unavailable area.

CROSS REFERENCE TO RELATED APPLICATIONS

The present invention claims priority to U.S. Provisional PatentApplication, Ser. No. 62/170,267, filed on Jun. 3, 2015. The U.S.Provisional Patent Application is hereby incorporated by reference inits entirety.

FIELD OF THE INVENTION

The present invention relates to video coding using Intra Block Copy(IntraBC) mode. In particular, the present invent relates to errorhandling for a coding system using the Intra block copy mode.

BACKGROUND AND RELATED ART

High Efficiency Video Coding (HEVC) is a new coding standard that hasbeen developed in recent years. In the High Efficiency Video Coding(HEVC) system, the fixed-size macroblock of H.264/AVC is replaced by aflexible block, named coding unit (CU). Pixels in the CU share the samecoding parameters to improve coding efficiency. A CU may begin with alargest CU (LCU), which is also referred as coded tree unit (CTU) inHEVC. In addition to the concept of coding unit, the concept ofprediction unit (PU) is also introduced in HEVC. Once the splitting ofCU hierarchical tree is done, each leaf CU is further split into one ormore prediction units (PUs) according to prediction type and PUpartition.

Along with the High Efficiency Video Coding (HEVC) standard development,the development of extensions of HEVC has also started. The HEVCextensions include screen content coding (SCC). Due to specificcharacteristics of screen contents, coding tools have been developed anddemonstrate significant gains in coding efficiency. Among them, thecolour index coding (a.k.a. major colour based coding) techniquesrepresent block of pixels using indices to the palette (major colours),and encode the palette and the indices by exploiting spatial redundancy.While the total number of possible colour combinations is huge, thenumber of colours in an area of picture is usually very limited fortypical screen contents. Therefore, the colour index coding becomes veryeffective for screen content materials. Related key colour index codingtechniques are briefly reviewed as follows.

During the Course of Screen Content Coding (SCC) development, variousvideo coding tools have been described, including the “Intra pictureblock copy” (IntraBC) technique. The IntraBC technique was firstdisclosed in JCTVC-M0350 (Budagavi et al., AHG8: Video coding usingIntra motion compensation, Joint Collaborative Team on Video Coding(JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC 1/SC 29/WG11 13th Meeting:Incheon, KR, 18-26 Apr. 2013, Document: JCTVC-M0350). An exampleaccording to JCTVC-M0350 is shown in FIG. 1, where a current coding unit(CU, 110) is coded using Intra MC (motion compensation). The Intra MC isalso named as Intra Block Copy (IntraBC). The prediction block (120) islocated from the current CU and a displacement vector (112). In thisexample, the search area is limited to the current CTU (coding treeunit), the left CTU and the left-left CTU. The prediction block isobtained from the already reconstructed region. Then, the displacementvector, also named motion vector (MV) or block vector (BV), and residualfor the current CU are coded. It is well known that the HEVC adopts CTUand CU block structure as basic units for coding video data. Eachpicture is divided into CTUs and each CTU is reclusively divided intoCUs. During prediction phase, each CU may be divided into multipleblocks, named prediction units (PUs) for performing prediction process.

In JCTVC-M0350, the IntraBC is different from the motion compensationused for Inter prediction in at least the following areas:

-   -   BVs are restricted to be 1-D for IntraBC (i.e., either        horizontal or vertical) while Inter prediction uses 2-D motion        estimation.    -   Binarization is fixed length for IntraBC while Inter prediction        uses exponential-Golomb.    -   IntraBC introduces a new syntax element to signal whether the BV        is horizontal or vertical.

Based on JCTVC-M0350, some modifications are disclosed by Pang, et al.,in Non-RCE3: Intra Motion Compensation with 2-D MVs, Joint CollaborativeTeam on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC29/WG 11, 14th Meeting: Vienna, AT, 25 Jul.-2 Aug. 2013, Document:JCTVC-N0256 (hereinafter JCTVC-N0256). Firstly, the IntraBC is extendedto support 2-D MVs, so that both vertical and horizontal MV componentscan be non-zero at the same time. This provides more flexibility toIntraBC than the original approach, where the MV is restricted to bestrictly horizontal or vertical.

In JCTVC-R0309 (Pang, et al., “Non-SCCE1: Combination of JCTVC-R0185 andJCTVC-R0203”, JCTVC-R0309, Joint Collaborative Team on Video Coding(JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 18thMeeting: Sapporo, JP, July 2014), the neighbouring BVs and coded BVs areused as BV predictor (BVP). The BV predictor is derived similar to theAMVP (advanced motion vector prediction) scheme in HEVC. The predictorcandidate list is constructed by first accessing in order the spatialneighbouring blocks a₁ (220) and b₁ (230) of a current block (210) asshown in FIG. 2. If any of the spatial neighbours doesn't have a blockvector, the last two coded BVs are used as substitute block vectors tofill the block vector candidate list so that the list contain twodifferent entries. The substitute block vectors are initialized with(−2*CU width, 0) and (−CU width, 0), where CU width is the width of theCU. To avoid the line buffer, the above BV out of current CTU isconsidered unavailable. The last two coded BVs are reset to (0, 0) foreach CTU to prevent the data dependency.

In HEVC, Merge candidates are derived from spatial/temporal neighbourblocks for the current coded block in an Inter coded slice. A merge_flagis used to signal whether the current block is merged into one of itscandidates. If yes, another index is used to signal which of thecandidates is used for Merge mode. For example, if candidate block a₁ inFIG. 2 is signalled as the candidate to be used, then the current blockwill share the same motion vector and reference picture as those inblock a₁.

If any Merge candidate is not available (e.g. non-existing or not codedin Inter mode), additional candidates are inserted into the candidatelist. If the Merge candidate list is still not full after inserting theadditional candidates, zero motion vector with reference index (i.e.,refldx) equal to 0 will be used to fill all the empty candidates.

Two types of additional candidates can be inserted:

1. Combined bi-predictive Merge candidate (candidate type 1)

2. Zero vector Merge/AMVP candidate (candidate type 2)

The type-2 additional candidates are inserted after the type-1additional candidates.

For the type-1 candidate, combined bi-predictive Merge candidates aregenerated by combining original Merge candidates. In particular, twooriginal candidates, which have mvL0 (the motion vector in list 0) andrefldxL0 (the reference picture index in list 0), or mvL1 (the motionvector in list 1) and refldxL1l (the reference picture index in list 1),are used to generate bi-predictive Merge candidates.

For the type-2 candidate, zero-vector Merge/AMVP candidates aregenerated by combining zero vectors and reference index which can bereferred. If zero-vector candidates are not duplicated, it is added toMerge/AMVP candidate set.

In SCM-2.0 (Joshi, et al., Screen content coding test model 2 (SCM 2),Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3and ISO/IEC JTC 1/SC 29/WG 11, 18th Meeting: Sapporo, JP, 30 Jun.-9 Jul.2014, Document: JCTVC-R1014), coding of block vector difference ismodified to use one context-coded bin for coding each vector component.Methods to further improve the coding efficiency and to enableunification of BVD and MVD coding have also been disclosed in theliterature.

In SCM-3.0 (Joshi, et al., Screen content coding test model 3(SCM 3),Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3and ISO/IEC JTC 1/SC 29/WG 11, 19th Meeting: Strasbourg, FR, 17-24 Oct.2014, Document: JCTVC-S1014), a ladder shaped IntraBC search rangeconstraint is adopted, as shown in FIG. 3, where the blocks withcross-lined background indicate the ladder shape IntraBC search rangeand block 310 corresponds to the current CTU. For an IntraBC block incurrent CTU, the available search area is constrained to the CTUs withdotted background and the reconstructed blocks in the current CTU.

BRIEF SUMMARY OF THE INVENTION

In order to overcome the issue caused by a decoded block vector (BV)pointing to a reference block overlapping with an unavailable area,various methods are disclosed. According to one method, if the referenceblock overlaps with an unavailable area, the reference pixels in theunavailable area are generated for IntraBC prediction of the currentblock by padding from neighbouring available pixels. The padding can bedone in the horizontal direction and then the vertical direction. Thepadding may also done in the vertical direction first and thenhorizontal direction.

According to another method, if the reference block overlaps with anunavailable area, the reference pixels in the unavailable area aregenerated for IntraBC prediction of the current block by using previousdecoded pixels in the unavailable area. In one embodiment, all pixels ina storage area of the current picture are set to a pre-defined valuebefore decoding the current picture and storing a previous decoded blockin the storage area of the current picture. The reference block for thecurrent block is fetched directly from the storage area of the currentpicture regardless whether the reference block is in the unavailablearea or not. Accordingly, when previous decoded pixels are notavailable, the pre-defined value will be used. The pre-defined value canbe equal to (1<<(bit_depth−1)), where bit_depth corresponds to bit depthof the current picture.

According to yet another method, if the reference block overlaps with anunavailable area, the reference pixels in the unavailable area aregenerated for IntraBC prediction of the current block by using apre-defined value. The pre-defined value can be equal to(1<<(bit_depth−1)), where bit_depth corresponds to bit depth of thecurrent picture. In one embodiment, if the reference block overlaps withan unavailable area, the whole block is set to the pre-defined value.The pre-defined value can be signalled in a SPS (sequence parameterset), PPS (picture parameter set), or slice header.

Another aspect of the present invention addresses the issue ofdetermining whether to use integer motion vector. According to thepresent invention, one or two previously coded slices, tiles or picturesare used to determine whether to use integer motion vector for thecurrent slice, tile or picture.

Yet another aspect of the present invention addresses the issue ofadaptive colour transform (ACT). According to the present invention,pixel-level ACT is used. For example, pixel-level inverse CCP processand inverse ACT process can be applied in cascade by passing an inverseCCP processed pixel directly to the inverse ACT process. In anotherexample, pixel-level inverse ACT process and pixel reconstructionprocess can be applied in cascade by passing an inverse ACT processedpixel directly to the pixel reconstruction process.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example of Intra Block Copy (IntraBC), where theblock vector is restricted to the horizontal direction.

FIG. 2 illustrates an example of constructing motion vector predictorcandidate list based on motion vectors of spatial neighbouring blocks.

FIG. 3 illustrates an example of a ladder shaped IntraBC search rangeaccording to existing HEVC SCC (high efficiency video coding—screencontent coding) specification.

FIG. 4 illustrates an example of using previous decoded pixels outsidethe ladder shape boundary according to an embodiment of the presentinvention.

FIG. 5 illustrates a block diagram of a decoding system incorporatingin-loop colour-space transform.

FIG. 6 illustrates a flowchart of an exemplary decoding systemincorporating error handling according to an embodiment of the presentinvention for the case that a decoded block vector pointing to areference block overlapping with an unavailable area.

DETAILED DESCRIPTION OF THE INVENTION

The following description is of the best-contemplated mode of carryingout the invention. This description is made for the purpose ofillustrating the general principles of the invention and should not betaken in a limiting sense. The scope of the invention is best determinedby reference to the appended claims.

Error Handling for Video Coding Using Intra Block Copy Mode

In SCC, the decoder might have a decoded BV that point to unavailablearea. For example, the decoded BV is resulted from a bitstream withtransmission error. An encoder could also generate an incorrect BV. Thiscould happen especially in multiple tile process and multiple sliceprocess. The decoder behaviour regarding how to compensate the IntraBCblock is undefined when the coded BV point to unavailable area.

In order to overcome this issue, a method of the present inventiongenerates the un-available data is disclosed.

Embodiment 1: Padding Unavailable Pixels

If the IntraBC reference block is overlapped with the unavailable area,the textures in the unavailable are padded by using the neighbouringavailable pixels. The padded textures are used for IntraBC compensation.The padding can be performed individually in the horizontal directionand the vertical direction. For example, for the unavailable area, thehorizontal padding can be applied first followed by the verticalpadding. Alternatively, the vertical padding can be applied firstfollowed by the horizontal padding for the unavailable area.

Embodiment 2: Using the Previous Decoded Pixels for the Unavailable AreaOutside the Ladder Shape Boundary

If the IntraBC reference block is overlapped with the previouslyreconstructed, but unavailable area outside the ladder shape boundary,the decoded samples outside the ladder shape boundary are used even ifthey are considered as unavailable.

FIG. 4 illustrates an example of using previous decoded pixels outsidethe ladder shape boundary. Coding tree units CTU-0, CTU-1 and CTU-2correspond to the leading CTUs in respective CTU rows or slices that thecurrent CTU CTU-3 can refer as IntraBC reference data. In other words,the cross-line filled ladder shape area corresponds to the IntraBCreference data that CTU-3 can use for IntraBC prediction. On the otherhand, the slant-line filled area 410 corresponds to the area that hasbeen reconstructed. However, in the conventional IntraBC process, thisarea outside the ladder shape boundary cannot be used as reference datafor CTU-3. According to an embodiment of the present invention, if thereference block is overlapped with the slant-line filled area 410, theprevious decoded pixels in the slant-line filled area 410 are used asfor IntraBC prediction.

In the above example, pixels in the unavailable area outside the laddershape boundary may not be decoded yet. In order to overcome this issue,all samples in the current picture can be reset to a pre-defined valuebefore decoding the current picture. For example, the pre-defined valuecan be set to (1<<(bit_depth−1)). During the current picture decoding,the current picture is updated. For IntraBC coding, the reference blocksamples are directly fetched from the current picture regardless whetherthe samples are in the available area or not. Therefore, if the pixelsin the unavailable area outside the ladder shape area have beenpreviously decoded, the previous decoded pixels will be used for IntraBCprediction. Otherwise, if the pixels in the unavailable area areaccessed, the accessed data correspond to the pre-defined data accordingto this arrangement. The predefined value can be defined in standard orsignalled in the SPS (sequence parameter set), PPS (picture parameterset), or slice header.

Whether a reference block is inside the ladder shape boundary can bedetermined according to the following condition:

(xPb+(mv_x>>2)+nPbSw−1+offsetX)/CtbSizeY−xCb/CtbSizeY<=yCb/CtbSizeY−(yPb+(mv_>>2)+nPbSh−1+offsetY)/CtbSizeY.  (1)

In the above equation, (xPb, yPb) specifies the top-left sample locationof the current luma prediction block relative to the top-left lumasample of the current picture, (xCb, yCb) sepecifies the the top-leftluma sample location of the current luma coding block relative to thetop-left luma sample of the current picture, nPbSw and nPbSh are the PUwidth and PU height, CtbSizeY is the CTU height. The variables offsetXand offsetY are derived as follows:

offsetX=(ChromaArrayType==0)?0:(mvCLX[0]&0x7?2:0)

offsetY=(ChromaArrayType==0)?0:(mvCLX[1]&0x7?2:0)

If the condition in eq. (1) is satisfied, it implies that the referenceblock is inside the ladder shape reference area. If the condition isfalse, it implies that the reference block is outside the ladder shapereference area and the embodiment mentioned above is applied.

Embodiment 3: Setting Pixels in Unavailable Area to a Predefined Value

In this embodiment, only the previous decoded data in the available areais allowed to be used as the IntraBC reference data. If the IntraBCreference block is overlapped with the unavailable area, the textures inthe unavailable are set to a predefined value, such as(1<<(bit_depth−1)) or 128 according to this embodiment. Therefore, ifthe IntraBC reference block is overlapped with the unavailable area, thepre-defined pixel values can be used. The predefined value can besignalled in the SPS (sequence parameter set), PPS (picture parameterset), or slice header.

Embodiment 4: Setting to a Predefined Value for all Pixels of theReference Block

If the IntraBC reference block is overlapped with the unavailable area,the textures of the whole reference block are set to a predefined value,such as (1<<(bit_depth−1)). The predefined value can be signalled in theSPS (sequence parameter set), PPS (picture parameter set), or sliceheader.

Using Coded Slices/Tiles/Pictures to Determine MV Resolution

In screen content coding (SCC), a SPS-level syntaxmotion_vector_resolution_control_idc is signalled in the SPS to controlthe presence and inference of the use_integer_mv_flag that specifies theresolution of motion vectors for Inter prediction. If themotion_vector_resolution_control_idc is 2, the slice-level syntaxuse_integer_mv_flag is signalled. If the use_integer_mv_flag is 1, itimplies that the MV resolution of this slice is integer pixel.Otherwise, the MV resolution of this slice is quarter pixel. In SCM-4.0(Joshi et al., Screen content coding test model 4 (SCM 4), JCTVC-T1014,ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 20^(th) Meeting: Geneva, CH,February 2015, Document: JCTVC-T1014), the value of use_integer_mv_flagis determined by checking the similarity of the current picture and theprevious coded picture. However, it requires two-pass encoding. Thefirst pass is to determine the similarity, and the second pass is toencode the slice/picture.

According to another method of the present invention, only the previouscoded slice/picture is used to determine the value ofuse_integer_mv_flag. For example, two previous coded slices/pictures areselected to determine the value of use_integer_mv_flag. These twopictures can be two pictures that closed to the current picture. Inanother example, one picture (e.g. picture-A) is the first picture inList_0 of the current picture, and the other picture is the firstpicture in List_0 of the first picture in List_0 of the current picture(i.e., the first picture in List_0 of the picture-A).

In another example, the statistic of the current picture can be used todecide the use_integer_mv_flag of the following pictures.

Enlarging IntraBC Search Range

In the software for HEVC Range Extension version 6.0 (RExt-6.0), theIntraBC search range for a current block (i.e., a CU) is the current CTUand left CTU. The pixels for IntraBC prediction and compensation are theun-filtered pixels, which are the pixels before deblocking and SAO.

One method of the present invention increases the IntraBC search rangeto be larger than the current CTU and left CTU. The pixels for IntraBCprediction and compensation can be the un-filtered pixels or filteredpixels depending on the position of the pixels.

For example, the pixels for IntraBC prediction and compensation can bethe un-filtered pixels for the pixels in current CTU and left CTU. Otherpixels are using filtered pixels (i.e., after deblocking and SAO).

In another example, the pixels for IntraBC prediction and compensationcan be the un-filtered pixels for the pixels in current CTU, left CTU,and four above lines of the current CTU and left CTU. Other pixels areusing filtered pixels.

In yet another example, the pixels for IntraBC prediction andcompensation can be the un-filtered pixels for the pixels in currentCTU, four above lines of current CTU, and four left column of currentCTU. Other pixels are using filtered.

In yet another example, the pixels for IntraBC prediction andcompensation can be the un-filtered pixels for the pixels above fourpixel lines of current CTU row. Other pixels are using filtered.

IntraBC Buffer Management

In SCM-4.0, the pre-deblocking texture of current picture needs to bestored for IntraBC search and compensation. The texture after SAOprocess of current picture is also need to be stored as the referenceframes for the following picture coding. In the present invention, inorder to reduce the buffer size, the pre-deblocking texture of currentpicture and the texture difference between pre-deblocking texture andafter SAO texture are stored. Alternatively, the after-SAO texture andthe texture difference between pre-deblocking texture and after SAOtexture are stored. Since the SAO and deblocking filter will not changethe picture value by much, the bit-depth of the texture differenceshould be less than the bit-depth of the normal reconstructed texture.

Pixel-level ACT

In HEVC Range Extension (HEVC-HEVC) and HEVC Screen Content Coding(HEVC-SCC), there is a coding tool called cross-component prediction(CCP). CCP uses luma/G residual to predict the chroma/B/R residual. Inthe SCC, an in-loop adaptive colour transform (ACT) has proposed toremove the redundancy among the colour components. In SCM-2.0, the ACTis a CU-level process. In SCM-3.0, the ACT is modified as a TU-levelprocess.

An example of decoding system block diagram including the in-loopcolour-space transform is shown in FIG. 5. An additional module, i.e.,inverse colour-space transform (530) is included. Various modules areshown in FIG. 5 including entropy decoder (510), de-quantization (515),inverse transform (520), cross-component prediction (CCP, 525), motioncompensation (535), Intra prediction (540), adder (545), deblockingfilter (550), SAO (sample adaptive offset) filter (555) and DPB (decodedpicture buffer, 560). The decoder also includes a first switch (S1)select inverse colour-space transform (in the lower position) or bypassthe inverse colour-space transform (in the upper position). The decoderalso includes a second switch (S2) select Inter prediction (in the upperposition) or Intra prediction (in the lower position). Other than theinverse colour-space transform (530), all other modules are standarddecoder modules used in conventional HEVC. When a block is coded withthe colour-space transform enabled, the inverse colour-space transformis invoked to convert the residual domain back to the original domainfor the output from the conventional inverse DCT/DST transform and CCP.

Two different colour-space transforms are applied depending on whetherthe CU is coded in a lossless or lossy manner. The forward and theinverse colour-space transforms for lossy coding use the YCoCg transformmatrices, which are defined as follows:

$\begin{matrix}{{{{Forward}{\text{:}\;\begin{bmatrix}C_{0}^{\prime} \\C_{1}^{\prime} \\C_{2}^{\prime}\end{bmatrix}}} = {{\begin{bmatrix}1 & 2 & 1 \\2 & 0 & {- 2} \\{- 1} & 2 & {- 1}\end{bmatrix}\begin{bmatrix}C_{0} \\C_{1} \\C_{2}\end{bmatrix}}\text{/}4}},{and}} & (2) \\{{{{Inverse}{\text{:}\mspace{14mu}\begin{bmatrix}C_{0} \\C_{1} \\C_{2}\end{bmatrix}}} = {\begin{bmatrix}1 & 1 & {- 1} \\1 & 0 & 1 \\1 & {- 1} & {- 1}\end{bmatrix}\begin{bmatrix}C_{0}^{\prime} \\C_{1}^{\prime} \\C_{2}^{\prime}\end{bmatrix}}},} & (3)\end{matrix}$

wherein the original colour space (C₀, C₁, C₂) may correspond to (R, G,B), (Y, Cb, Cr) or (Y, U, V).

In the present invention, the pixel-level process is disclosed. Forexample, when processing each residual sample in CCP, the YUV/YCbCr/RGBresidual samples can be loaded and the ACT can be performed in cascadeafter pixel-level CCP process. The ACT will not need an additionalprocessing stage. In another example, the pixel-level ACT is performedin the reconstruction stage when adding the residual with predictors.The inverse ACT for each residual sample is first applied and then thefinal residual sample is added with predictor.

In yet another embodiment, the ACT process in the block level isdisclosed. The block size is M×N, where M and N are both positiveintegers and the block size can be predetermined or transmitted in thebitstream. For example, when processing the residual samples within eachblock (e.g. 4×4) in CCP, the YUV/YCbCr/RGB residual samples can beloaded and the ACT can be cascaded performed after block-level CCPprocess.

In another example, when the inverse transform is performed on the lastcolour component (e.g. the V, Cr, B, or R component), the inverse ACTprocess can be applied in cascade with the inverse transform if the CCPis turn off. If CCP is on, the inverse CCP process and inverse ACTprocess can be applied in cascade with the inverse transform.

FIG. 6 illustrates a flowchart of an exemplary decoding systemincorporating error handling according to an embodiment of the presentinvention for the case that a decoded block vector pointing to areference block overlapping with an unavailable area. A decoded BV(block vector) for a current block in a current picture is determined instep 610. A reference block in the current picture is determined in step620, where the reference block is pointed by the decoded BV from thecurrent block. If the reference block overlaps with an unavailable area,reference pixels in the unavailable area are generated for IntraBCprediction of the current block by padding from neighbouring availablepixels, by using previous decoded pixels in the unavailable area, or byusing a pre-defined value in step 630. Then, the current block in theIntraBC mode can be decoded using the reference block as shown in step640.

The flowchart shown is intended to illustrate an example of video codingaccording to the present invention. A person skilled in the art maymodify each step, re-arranges the steps, split a step, or combine stepsto practice the present invention without departing from the spirit ofthe present invention. In the disclosure, specific syntax and semanticshave been used to illustrate examples to implement embodiments of thepresent invention. A skilled person may practice the present inventionby substituting the syntax and semantics with equivalent syntax andsemantics without departing from the spirit of the present invention.

The above description is presented to enable a person of ordinary skillin the art to practice the present invention as provided in the contextof a particular application and its requirement. Various modificationsto the described embodiments will be apparent to those with skill in theart, and the general principles defined herein may be applied to otherembodiments. Therefore, the present invention is not intended to belimited to the particular embodiments shown and described, but is to beaccorded the widest scope consistent with the principles and novelfeatures herein disclosed. In the above detailed description, variousspecific details are illustrated in order to provide a thoroughunderstanding of the present invention. Nevertheless, it will beunderstood by those skilled in the art that the present invention may bepracticed.

Embodiment of the present invention as described above may beimplemented in various hardware, software codes, or a combination ofboth. For example, an embodiment of the present invention can be one ormore circuit circuits integrated into a video compression chip orprogram code integrated into video compression software to perform theprocessing described herein. An embodiment of the present invention mayalso be program code to be executed on a Digital Signal Processor (DSP)to perform the processing described herein. The invention may alsoinvolve a number of functions to be performed by a computer processor, adigital signal processor, a microprocessor, or field programmable gatearray (FPGA). These processors can be configured to perform particulartasks according to the invention, by executing machine-readable softwarecode or firmware code that defines the particular methods embodied bythe invention. The software code or firmware code may be developed indifferent programming languages and different formats or styles. Thesoftware code may also be compiled for different target platforms.However, different code formats, styles and languages of software codesand other means of configuring code to perform the tasks in accordancewith the invention will not depart from the spirit and scope of theinvention.

The invention may be embodied in other specific forms without departingfrom its spirit or essential characteristics. The described examples areto be considered in all respects only as illustrative and notrestrictive. The scope of the invention is therefore, indicated by theappended claims rather than by the foregoing description. All changeswhich come within the meaning and range of equivalency of the claims areto be embraced within their scope.

1-17: (canceled) 18: A method of error handling for a video decoding system using an Intra Block Copy (IntraBC) mode, comprising: determining a decoded BV (block vector) for a current block in a current picture; determining a reference block in the current picture, wherein the reference block is pointed by the decoded BV from the current block; storing a previous decoded block in a storage area, wherein the reference block for IntraBC prediction of the current block is fetched directly from the storage area corresponds to the current picture; and decoding the current block in the IntraBC mode using the reference block. 19: The method of claim 18, further comprising resetting all samples in the storage area to a pre-defined value before decoding the current picture. 20: A method of error handling for a video decoding system using an Intra Block Copy (IntraBC) mode, comprising: determining a decoded BV (block vector) for a current block in a current picture; determining a reference block in the current picture, wherein the reference block is pointed by the decoded BV from the current block; if the reference block overlaps with an unavailable area, generating predictors for all pixels of the current block using the pre-defined value; and decoding the current block in the IntraBC mode using the predictors for all pixels of the current block. 21: The method of claim 20, wherein the pre-defined value is (1<<(bit_depth−1)). 22: The method of claim 20, wherein the predefined value is signalled in the SPS (sequence parameter set), PPS (picture parameter set), or slice header 